Video browser

ABSTRACT

In an embodiment, a computing device may display a video browser screen on an output device. The video browser screen may include a list of video programs arranged as a carousel. The carousel may have a plurality of entries, where an entry may represent a video program that may be provided by a service provider. A video program represented by an entry may be, for example, a live video program, a video program available on demand, or a video program that may have been recorded by a device that may be provided by the service provider. The computing device may acquire an indication to navigate to an entry in the carousel. The computing device may navigate to the entry and acquire an indication to select the entry. The computing device may select the entry and display the video program associated with the selected entry on the output device.

RELATED APPLICATIONS

This application is a divisional application of U.S. application Ser.No. 15/918,298 filed Mar. 12, 2018, entitled VIDEO BROWSER, which isincorporated herein by reference in its entirety.

U.S. application Ser. No. 15/918,298 is a continuation application ofU.S. application Ser. No. 13/940,100 (U.S. Pat. No. 9,930,417) filedJul. 11, 2013, entitled VIDEO BROWSER which is incorporated herein byreference in its entirety.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate one or more embodiments describedherein and, together with the description, explain these embodiments. Inthe drawings:

FIG. 1 illustrates a block diagram of an example embodiment of acomputing device that may be used to implement a video browser;

FIG. 2 illustrates an example of a video browser screen that may beassociated with a video browser;

FIG. 3 illustrates an example of selecting a video program using a videobrowser screen;

FIG. 4 illustrates an example of a carousel that may be included in avideo browser screen;

FIGS. 5A-B illustrate a flow diagram of example acts that may be used toselect a video program from a listing of video programs; and

FIGS. 6A-B illustrate a flow diagram of example acts that may be used toselect a filter that may be used to identify video programs that may beincluded in a listing of video programs.

DETAILED DESCRIPTION

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements. Also, the following detailed description does notlimit the invention.

Techniques described herein may involve, for example, displaying a videobrowser screen on an output device. The video browser screen mayinclude, for example, a list of video programs arranged as a carousel.The carousel may have, for example, a plurality of entries that mayinclude an entry that may represent a video program being aired by aservice provider. An indication to navigate to the entry may be acquired(e.g., read, received). The entry may be navigated to and an indicationto select the entry may be acquired. The entry may be selected and thevideo program associated with the selected entry may be displayed, forexample, on the output device.

Techniques described herein may be implemented in a computing device.Examples of computing devices that may implement techniques describedherein may include, but are not limited to, set-top boxes (STBs), smartphones, tablets, ultrabooks, laptops, mainframes, servers, and desktopcomputers.

FIG. 1 illustrates a block diagram of an example embodiment of acomputing device 100 that may perform techniques described herein.Referring to FIG. 1, computing device 100 may include variouscomponents, such as, for example, processing logic 120, primary storage130, secondary storage 150, input devices 160, output devices 170,and/or communication interfaces 180.

It should be noted that FIG. 1 illustrates an example embodiment ofcomputing device 100. Other embodiments of computing device 100 mayinclude more components or fewer components than the componentsillustrated in FIG. 1. Further, the components may be arrangeddifferently than as illustrated in FIG. 1.

For example, in an embodiment of computing device 100, secondary storage150 may be contained at a remote site that may provide “cloud” storage.The site may be accessible to computing device 100 via a communicationsnetwork, such as, for example, the Internet. A communication interface180 may be used to interface the computing device 100 with thecommunications network.

Also, it should be noted that functions performed by various componentscontained in other embodiments of computing device 100 may bedistributed among the components differently than as described herein.

Computing device 100 may include an input/output (I/O) bus 110 that mayenable communication among components in computing device 100. Thesecomponents may include, for example, processing logic 120, secondarystorage 150, one or more input devices 160, one or more output devices170, and/or one or more communication interfaces 180. The communicationmay include transferring, for example, control signals and/or databetween the components. I/O busses that may be used to implement I/O bus110 may include, for example, serial AT attachment (SATA), peripheralcomponent interconnect (PCI), PCI express (PCI-e), universal serial bus(USB), small computer system interface (SCSI), serial attached SCSI(SAS), and/or some other I/O bus.

Computing device 100 may include a memory bus 190 that may enableinformation to be transferred between processing logic 120 and primarystorage 130. The information may be stored in primary storage 130 andmay include, for example, computer-executable instructions and/or datathat may be executed, manipulated, and/or otherwise processed byprocessing logic 120.

Processing logic 120 may include logic for interpreting, executing,and/or otherwise processing information. The information may includeinformation that may be stored in, for example, primary storage 130and/or secondary storage 150. In addition, the information may includeinformation that may be acquired (e.g., read, received) by one or moreinput devices 160 and/or communication interfaces 180.

Processing logic 120 may include a variety of heterogeneous hardware.The hardware may include, for example, some combination of one or moreprocessors, microprocessors, field programmable gate arrays (FPGAs),application specific instruction set processors (ASIPs), applicationspecific integrated circuits (ASICs), complex programmable logic devices(CPLDs), graphics processing units (GPUs), systems on chip (SoCs),and/or other types of processing logic that may, for example, interpret,execute, manipulate, and/or otherwise process information, such as theinformation described above. Processing logic 120 may comprise a singlecore or multiple cores. An example of an SoC that may be used toimplement processing logic 120 is the Intel® Atom™ CE5300 SoC availablefrom Intel Corporation, Santa Clara, Calif.

Input devices 160 may include one or more devices that may be used toinput information into computing device 100. The devices may include,for example, a keyboard, computer mouse, microphone, camera, touch pad,stylus, graphics tablet, touch screen, joystick (isotonic or isometric),pointing stick, accelerometer, multipoint input device, discretepointing device, remote control device (e.g., television remote controldevice, STB remote control device), analog-to-digital converter (ADC),infrared device, Bluetooth device, and/or some other input device. Theinformation may include spatial (e.g., continuous, multi-dimensional)data that may be input into computing device 100 using, for example, apointing device, such as a computer mouse. The information may alsoinclude other forms of data, such as, for example, digital codes thatmay be associated with keys on a remote control device.

Output devices 170 may include one or more devices that may outputinformation from computing device 100. The information may be output,for example, in digital form and/or analog form (e.g., analog audiofrequency signals). The devices may include, for example, a cathode raytube (CRT), plasma display device, light-emitting diode (LED) displaydevice, liquid crystal display (LCD) device, speaker, video projector,touch screen, television screen, video monitor, digital-to-analogconverter (DAC), sound card, and/or some other output device.

Output devices 170 may be directed by, for example, processing logic120, to output the information from computing device 100. Outputting theinformation may include presenting (e.g., displaying, printing) theinformation on an output device 170. The information may include, forexample, text, graphical user interface (GUI) elements (e.g., windows,widgets, and/or other GUI elements), audio (e.g., music, sounds), and/orother information that may be outputted by output devices 170. Outputdevices 170 may employ one or more protocols that may be used to outputthe information. For example, output devices may employ the highdefinition multimedia interface (HDMI) protocol and/or the Sony/PhilipsDigital Interconnect Format (S/PDIF) protocol.

Communication interfaces 180 may include logic for interfacing computingdevice 100 with, for example, one or more communications networks andenable computing device 100 to communicate with one or more entities(e.g., nodes) coupled to the communications networks. The communicationsnetworks may include, for example, cable networks, the Internet,wide-area networks (WANs), local area networks (LANs), 3G and/or 4G(e.g., 4G long-term evolution (LTE)) networks. Communication interfaces180 may include one or more transceiver-like mechanisms that may enablecomputing device 100 to communicate with entities coupled to thecommunications networks. Examples of communication interfaces 180 mayinclude a built-in network adapter, multiplex over coax (MoCA) adapter,radio frequency (RF) tuner, network interface card (NIC), PersonalComputer Memory Card International Association (PCMCIA) network card,card bus network adapter, wireless network adapter (e.g., WiFi module),Universal Serial Bus (USB) network adapter, modem, and/or other devicesuitable for interfacing computing device 100 to a communicationsnetwork.

Primary storage 130 may provide a tangible non-transitory primarystorage for computing device 100. The primary storage may be used tostore information. Primary storage 130 may be accessible to processinglogic 120 via memory bus 190, which may be a point-to-point interconnectbus that may enable information to be transferred between primarystorage 130 and processing logic 120. Information stored by primarystorage 130 may include computer-executable instructions and/or datathat may implement operating system (OS) 132, application (APP) 134, andlist 136. The computer-executable instructions may be executed,interpreted, and/or otherwise processed by processing logic 120.

OS 132 may be a conventional operating system that may implement variousconventional operating system functions. The functions may include, forexample, scheduling one or more portions of APP 134 to run on (e.g., beexecuted by) the processing logic 120, managing primary storage 130,controlling access to various components in computing device 100 (e.g.,input devices 160, output devices 170, communication interfaces 180,secondary storage 150), and/or controlling access to informationreceived and/or transmitted by these components.

Examples of operating systems that may be used to implement OS 132 mayinclude the Linux operating system, Microsoft Windows operating system,the Symbian operating system, Mac OS X operating system, iOS operatingsystems, the Android operating system, or some other operating system. Adistribution of the Linux operating system that may be used is Red HatLinux available from Red Hat Corporation, Raleigh, N.C. Versions of theMicrosoft Windows operating system that may be used include MicrosoftWindows Mobile, Microsoft Windows 8, Microsoft Windows 7, MicrosoftWindows Vista, and Microsoft Windows XP operating systems available fromMicrosoft Inc., Redmond, Wash. The Symbian operating system is availablefrom Accenture PLC, Dublin, Ireland. The Mac OS X and iOS operatingsystems are available from Apple, Inc., Cupertino, Calif. The Androidoperating system is available from Google, Inc., Menlo Park, Calif.

APP 134 may be a software application that may include provisions forimplementing a video browser. APP 134 may include computer-executableinstructions that may implement the video browser. The executableinstructions may be executed, for example, by processing logic 120.

Features provided by the video browser may include, for example, (1)displaying a list of video programs (e.g., broadcast programs,television shows, movies), (2) enabling the list to be navigated, and(3) enabling a selection of a video program in the list. As will bedescribed further below, the list of video programs may be arranged as acarousel having a plurality of entries where an entry may represent avideo program. An entry in the carousel may be selected and a videoprogram associated with the selected entry may be displayed on an outputdevice 170. A video program represented by an entry in the list of videoprograms may include a video program being aired (e.g., transmitted,streamed) by a service provider (e.g., a cable television provider, massmedia provider, television station, Internet based video provider,server). The video program may be aired as part of a live video feedthat may be provided by the service provider to, for example, asubscriber. Here, the video program may be considered a live videoprogram. Alternatively or in addition to, a video program represented byan entry in the list of video programs may include, for example, a videoprogram that (1) may be available on demand (e.g., video-on-demand (VOD)video program, pay-per-view (PPV) video program) from the serviceprovider and/or (2) may have been recorded by a video recording device(e.g., a digital video recorder (DVR)) that may be provided by theservice provider.

List 136 may include a data structure that may contain information aboutvideo programs. List 136 may contain plurality of entries that may holdthe information. Examples of data structures that may be used toimplement list 136 may include a database, table, linked-list, and/orother types of data structures.

An entry in list 136 may represent, for example, a video program and mayinclude information about the video program. A video program representedby an entry may be a currently airing program. Information in an entrymay include, for example, a title, description, video channel number,start time of the video program, duration of the video program, a tagthat may identify a genre or type of video program (e.g., sportsprogram, action movie, television series), and/or other information thatmay be associated with the video program.

List 136 may include other information that may be related to videoprograms and/or users of computing device 100. For example, a subscribermay subscribe to certain video channels that may be provided by aservice provider. List 136 may include video program information aboutvideo programs currently airing on the video channels subscribed to bythe subscriber. In another example, list 136 may include (1) a list offavorite channels and/or video programs of a particular user and/or (2)a history of channels and/or video programs viewed by the user.

Secondary storage 150 may provide a tangible non-transitory secondarystorage for computing device 100. Secondary storage 150 include one ormore storage devices 152 that may be used to implement the secondarystorage. The storage devices 152 may be accessible to processing logic120 via I/O bus 110. The storage devices 152 may store information. Theinformation may include computer-executable instructions and/or data.The information may be executed, interpreted, manipulated, and/orotherwise processed by processing logic 120.

The storage devices 152 may include volatile and/or non-volatilestorage. Examples of storage devices 152 may include magnetic diskdrives, optical disk drives, random-access memory (RAM) disk drives,flash drives, solid-state disks (SSDs), and/or hybrid drives. Theinformation may be stored on one or more non-transitory tangiblecomputer-readable media contained in the storage devices 152. Examplesof non-transitory tangible computer-readable media that may be containedin the storage devices may include magnetic discs, optical discs,volatile memory devices, and non-volatile memory devices.

As noted above, APP 134 may include provisions for displaying a list ofvideo programs that may be provided by, for example, a service provider.FIG. 2 illustrates an example video browser screen 200 that may bedisplayed by APP 134. Screen 200 may enable a user to browse a list ofvideo programs being aired by a service provider.

Referring to FIG. 2, the screen 200 may include a scaled video area 210,a filter bar 220, a video program information area 230, a progress bar240, and a video program listing 250. The scaled video area 210 maydisplay video from a video program being currently viewed. The videoprogram being currently viewed may be, for example, a video program thatmay be viewed at the time screen 200 is displayed.

For example, suppose computing device 100 is an STB and an input device160 associated with the computing device is a remote control. A user mayuse the remote control to specify a cable channel that may be providedby a service provider. The STB may tune to that channel and display avideo program being broadcast on that channel by the service provider.The video program may be displayed by the STB on an output device 170,such as a television screen. The scaled video area 210 may provide ascaled version of the video program when screen 200 is displayed.

Filter bar 220 may display one or more filters 225 that may be used toidentify information displayed in the video program listing 250. Forexample, suppose a filter 225 is defined as “the last ten video channelsthat a user has viewed”. Further, suppose that the information displayedin the video program listing 250 a-f includes information other than thelast ten video channels that the user has viewed. The user may navigateto the filter 225 in the filter bar 220 and select the filter 225. Afterthe filter 225 is selected, information displayed in video programlisting 250 may be updated to display video program information aboutsix of the last ten video channels the user has viewed.

The filter bar 220 may display information about a filter that has beenselected. For example, suppose the above-described filter was selected.After filter has been selected and the video program listing 250 hasbeen updated based on the selected filter, the filter bar 220 maydisplay the text “Now viewing the most recently viewed channels”.

Video program information area 230 may display information about a videoprogram. The information may include, for example, a title, briefdescription, secondary information (e.g., language, second audio program(SAP) information), a channel number, program network designator (e.g.,an icon that represents a source of the video program), and/or otherinformation that may be associated with the video program. The videoprogram may be, for example, a video program being shown in the scaledvideo area 210 or a video program listed in the video program listing250.

For example, suppose a video program is currently being displayed on anoutput device 170 when a user uses an input device 160 to directcomputing device 100 to display screen 200. The video programinformation area 230 may initially provide information about the videoprogram being displayed. As the user navigates through the video programlisting 250, the video program information area 230 may be updated toprovide information about, for example, video programs navigated to inthe video program listing 250.

Progress bar 240 may indicate a progress associated with a videoprogram. The video program may be, for example, a video program beingcurrently viewed or a video program listed in the video program listing250. For example, suppose a user navigates to a video program listed inthe video program listing 250. Progress bar 240 may graphically indicatea progress of the video program (e.g., an amount of elapsed timeassociated with the video program, an amount of time left for the videoprogram) that has been navigated to.

Video program listing 250 may provide information about video programs.The video programs may include video programs that are, for example,being aired by a service provider. Video program listing 250 may providethe information in one or more video program listing entries 252 a-f. Anentry 252 may represent a video program. An entry 252 may provideinformation that may be associated with the video program it represents.The video program may be, for example, a video program that may be airedby a service provider.

For example, suppose that a user subscribes to six video channels thatmay be provided by a service provider. Further, suppose that channelsare numbered one through six and that each of the channels is airing avideo program. Video program listing entries 252 a-f may represent andprovide information about the video programs airing on the six channels.Specifically, entry 252 a may represent and provide information aboutthe video program airing on channel one, entry 252 b may represent andprovide information about the video program airing on channel two, andso on.

A video program listing entry 252 may provide information associatedwith a video program using, for example, text and/or graphics. Forexample, suppose video program listing entry 252 a provides informationabout a video program currently airing on a particular video channel.Entry 252 a may include an icon or an image from the video program torepresent the video program in the video program listing 250. Entry 252a may also include text (e.g., a title) that may briefly describe thevideo program and/or the video channel.

The video program listing entries 252 a-f may be arranged to form acarousel. The carousel may rotate as the video program listing 250 isnavigated. The rotation may be, for example, leftwards or rightwardsdepending on how the video program listing 250 is navigated.

For example, suppose list 136 contains entries for ten different videoprograms numbered one through ten. Further suppose that video programlisting entries 252 a-f contain information about the video programsassociated with the first six entries in the list 136. Now suppose auser navigates the video program listing 250 from left to right.Navigating to the right of video program listing entry 252 f may causethe video program listing entries 252 a-f to change to displayinformation associated with second through seventh entries in the list136.

FIG. 3 illustrates an example operation of the video program listing250. Referring to FIG. 3, suppose that a user is viewing a video programthat is currently airing on video channel two, as illustrated in screen310 a. Now suppose the user uses an input device 160 to generate anindication to enter a video browser that may be provided by APP 134. APP134 may acquire (e.g., receive) the indication and display screen 200 a.APP 134 may display a scaled version of the video program in a scaledvideo area 210 of screen 200 a.

APP 134 may also display a video program listing 250. Suppose videoprogram listing entries 252 g, 252 h, and 252 j, provide informationabout video programs that may be currently airing on video channels one,two, and six, respectively. Since a scaled version of the video programairing on channel two is currently being displayed in a scaled videoarea 210 of screen 200 a, APP 134 may provide an indication of thiscondition in video program listing entry 252 h. For example, APP 134 mayhighlight a border of video program listing entry 252 h to indicate thatthe video program represented by video program listing entry 252 h iscurrently being displayed in the scaled video area 210 of screen 200 a.

Now suppose the user uses the input device 160 to generate one or moreindications to navigate the video programming listing 250 from videoprogram listing entry 252 h to video program listing entry 252 j. APP134 may acquire the indications and highlight video program listingentry 252 j to indicate that the user has navigated to video programlisting entry 252 j.

Moreover, APP 134 may display information about a video programrepresented by video program listing entry 252 j in a video programinformation area 230 in screen 200 a. The information about the videoprogram may be displayed, for example, after navigating to the videoprogram listing entry 252 j or after APP 134 acquires an indicationgenerated by the input device 160 to display the information.

For example, the user may navigate to video program listing entry 252 jas described above. After navigating to the video program listing entry252 j, APP 134 may automatically display information about the videoprogram associated with video program listing entry 252 j in a videoprogram information screen area 230 of screen 200 a. Alternatively or inaddition to, after navigating to video program listing entry 252 j, theuser may direct the input device 160 to generate an indication todisplay information about the video program represented by programlisting entry 252 j (e.g., by pressing a button on the input device160). APP 134 may acquire the indication and display information aboutthe video program represented by video program listing entry 252 j. Theinformation may be displayed in a video program information area 230 ofscreen 200 a.

Now suppose the user uses the input device 160 to generate an indicationto navigate one position beyond the video program listing entry 252 j.APP 134 may display screen 200 b after acquiring this indication. Notethat in screen 200 b, video program listing 250 acts as a carousel inthat information provided by the video program listings 252 have shiftedone position to the left. Also note that video program listing entry 252g has been dropped and a new video program listing entry 252 j has beenadded to the video program listing 250.

Suppose that video program listing 252 j provides information about avideo program currently airing on channel seven. In addition, supposethat the user uses the input device 160 to generate an indication toselect the video program currently airing on channel seven for viewing.APP 134 may acquire the indication and display screen 310 b. Screen 310b may display a video program currently airing on channel seven.

APP 134 may include provisions to navigate and select filters 225 in thefilter bar 220. FIG. 4 illustrates an example of navigating filter bar220 and selecting a filter 225 in the filter bar 220. Referring to FIG.4, suppose that APP 134 displays screen 200 c on an output device 170.Note that the filter bar 220 in screen 200 c includes filters 225 a and225 b. Suppose, for example, that a user uses an input device 160 togenerate an indication to navigate to the filter bar 220. APP 134 mayacquire the indication and navigate to the filter bar 220.

Now suppose the user uses the input device 160 to generate an indicationto navigate to filter 225 b in the filter bar 220. APP 134 may acquirethe indication and navigate to filter 225 b. APP 134 may indicate inscreen 200 c that filter 225 b has been navigated to. For example, APP134 may highlight text in the filter bar 220 that may identify filter225 b to indicate that filter 225 b has been navigated to. Note thatother techniques for indicating that a filter 225 has been navigated tomay be used.

After filter 225 b has been navigated to, the user may use the inputdevice 160 to generate an indication to select filter 225 b. APP 134 mayacquire the indication and apply filter 225 b. Applying the filter 225 bmay include applying the filter 225 b to list 136 to identify one ormore video programs based on, for example, criteria that may beassociated with the filter 225 b.

For example, list 136 may include a list of video programs that the usermay be entitled to view due to a subscription with a service providerthat provides the video programs. Filter 225 b may be defined toidentify certain types of video programs (e.g., action movies, sportsevents, documentaries). Suppose that filter 225 b is defined to identifyaction movies. APP 134 may apply filter 225 b to list 136 and identifyvideo programs that may be tagged as action movies.

After applying filter 225 b, APP 134 may display information about theidentified video programs. Screen 200 d illustrates an example techniquethat may be used to display this information. In screen 200 dinformation about the identified video programs may be added to a videoprogram listing 250 by sliding the information into the video programlisting entries 252. For example, animation may be used to slowly slidethe information into video program listing entries 252 contained intothe program listing 250, as illustrated in screen 200 d. Screen 200 eprovides an example illustration of the video program listing 250 afterthe animation has completed.

It should be noted that the selected filter may be saved and appliedwhen entering screen 200. For example, suppose screen 200 is entered anda user has selected filter 225 b as described above. APP 134 may storethis filter selection in storage, such as primary storage 130 and/orsecondary storage 150. Now suppose screen 200 is exited and then enteredagain (e.g., due to the user's interaction with computing device 100).Prior to entering screen 200 for the second time, APP 134 may applyacquire the stored filter selection and apply filter 225 b to identifyone or more video programs. After identifying the video programs, APP134 may display screen 200 where the video program listing entries 252a-f in screen 200 may include information about one or more of theidentified video programs.

A video browser may include provisions for (1) displaying a list ofvideo programs that may be currently airing, and (2) enabling a videoprogram displayed in the list of video programs to be selected.Selecting the video program may cause the video program to be displayed.The video program may be displayed, for example, on an output device,such as output device 170.

FIGS. 5A-B illustrate a flow diagram of example acts that may be used todisplay a video program selected from a listing of video programs.Referring to FIG. 5A, at block 510, an indication to display a list ofvideo programs may be acquired. For example, suppose a user presses abutton on an input device 160. Further, suppose that the button isassociated with invoking a video browser implemented by APP 134. Theindication may be generated based on, for example, the button beingpressed. The indication may be forwarded to APP 134 which may receivethe indication.

At block 512, a scaled version of a video program being currently viewedmay be displayed and, at a block 514, a listing of video programs may bedisplayed. For example, suppose a user is currently viewing a videoprogram on an output device 170 when the user presses the button on aninput device 160 to generate an indication as described above. Afterreceiving the indication, APP 134 may display video browser screen 200on an output device 170. APP 134 may also generate a scaled version of avideo program being currently being viewed and display the scaledversion of the video program in a scaled video area 210 of the screen200. In addition, APP 134 may identify one or more video programs anddisplay information about the identified video programs in video programlisting 250 in the screen 200, such as described above.

At block 516, an indication to navigate to a video program in thelisting of video programs may be acquired. For example, the user may usethe input device 160 to generate an indication to navigate the videoprogram listing 250. The indication may be generated, for example, basedon the user pressing a button on the input device 160. APP 134 mayreceive the indication.

At block 518, a video program in the listing of video programs may benavigated to. For example, the user may use the input device 160 togenerate an indication to navigate the video program listing 250 to avideo program listing entry 252 associated with the video program. Theindication may be generated, for example, based on the user pressing abutton on the input device 160. APP 134 may receive the indication andnavigate to the entry 252.

At block 520 (FIG. 5B), an indication of the video program navigated tomay be displayed. For example, after navigating to the video programlisting entry 252, APP 134 may provide an indication that the videoprogram listing entry 252 has been navigated to. The indication may beprovided in screen 200. For example, the indication may be provided byhighlighting the entry 252, such as described above, to indicate theentry 252 has been navigated to. Note that other indications may beprovided in screen 200 to indicate the entry 252 has been navigated to.

At block 522, a description of the video program navigated to may bedisplayed. For example, after navigating to the video program listingentry 252, APP 134 may display information associated with the videoprogram represented by the video program listing entry 252 in a videoprogram information area 230 of screen 200.

At block 524, an indication of a progress of the video program navigatedto may be displayed. For example, after navigating to the video programlisting entry 252, APP 134 may display a progress bar in screen 200. Theprogress bar may indicate an amount of time associated with the videoprogram represented by the video program listing entry 252. The amountof time may indicate, for example, an amount of time left in the videoprogram, an elapsed time associated with the video program, and/or someother amount of time that may be associated with the video program.

At block 526, an indication to select the video program navigated to maybe acquired and, at block 528, the video program is selected. Forexample, the user may use the input device 160 to generate an indicationto select the video program. APP 134 may receive the indication andselect the video program represented by the video program listing entry252 that was navigated to. Selecting the video program may include, forexample, tuning to the video program. Here, tuning may include, forexample, programming a tuner that may be associated with computingdevice 100 to tune to the video program, navigate to an Internet sitethat may be streaming the video program, and/or otherwise tuning to thevideo program.

At block 530, the selected video program is displayed. For example,after selecting the video program, APP 134 may display the selectedvideo program on an output device 170.

A video browser may include provisions for controlling which videoprograms may be included in a video program listing. The video browsermay include one or more filters which may be used to provide theseprovisions. The provisions may include provisions for displaying a listof filters, navigating the list of filters, and enabling a selection ofa filter. A selected filter may be applied by the video browser to alist of video programs to select video programs from the list that, forexample, meet criteria that may be associated with the filter. Videoprograms from the selected video programs may be included in the videoprogram listing.

FIGS. 6A-B illustrate a flow diagram of example acts that may be used toselect a filter that may be used to identify video programs that may beincluded in a listing of video programs. Referring to FIG. 6A, at block610, an indication to display a listing of filters is acquired. Forexample, suppose a user presses a button (on an input device 160) thatis associated with displaying a list of filters. An indication may begenerated based on, for example, the button being pressed. Theindication may be forwarded to APP 134 which may receive the indication.

At block 612, a listing of filters may be displayed. For example,suppose APP 134 has displayed screen 200 on an output device 170. AfterAPP 134 receives the above indication, APP 134 may display a listing offilters in filter bar 220 of the screen 200.

At block 614, an indication to navigate to a filter in the listing offilters is acquired. For example, the user may press a button (on theinput device 160) which may be associated with navigating to a filter225 in the filter bar 220. Pressing the button may cause an indicationto be generated where the indication may indicate that the filter bar220 is being navigated to the filter 225. APP 134 may receive theindication and navigate to the filter 225. APP 134 may provide anindication in the filter bar 220 that the filter 225 has been navigatedto, such as described above.

At block 616 (FIG. 6B), an indication to select the navigated filter maybe acquired. For example, suppose that after navigating to the filter225, the user presses a button on the input device 160 to select thefilter 225. Pressing the button may cause an indication to be generatedthat may indicate that the filter 225 is being selected. APP 134 mayreceive the indication and select the filter 225.

At block 618, video programs may be identified based on the selectedfilter. For example, after receiving the indication that the filter 225has been selected, APP 134 may apply the filter to list 136 to identifyone or more video programs in the listing that match a criteriaassociated with the selected filter 225.

At block 620, a list of video programs identified at block 618 isdisplayed in a listing of video programs. For example, suppose APP 134identifies ten video programs that meet the criteria associated with theselected filter 225. APP 134 may display information associated with sixof the identified programs in video program listing entries 252 a-f inscreen 200.

The foregoing description of embodiments is intended to provideillustration and description, but is not intended to be exhaustive or tolimit the invention to the precise form disclosed. Modifications andvariations are possible in light of the above teachings or may beacquired from practice of the invention. For example, while a series ofacts has been described above with respect to FIGS. 5A-B and 6A-B, theorder of the acts may be modified in other implementations. Further,non-dependent acts may be performed in parallel.

Also, the term “user”, as used herein, is intended to be broadlyinterpreted to include, for example, a computing device (e.g., fixedcomputing device, mobile computing device) or a user of a computingdevice, unless otherwise stated.

It will be apparent that one or more embodiments, described herein, maybe implemented in many different forms of software and/or hardware.Software code and/or specialized hardware used to implement embodimentsdescribed herein is not limiting of the invention. Thus, the operationand behavior of embodiments were described without reference to thespecific software code and/or specialized hardware—it being understoodthat one would be able to design software and/or hardware to implementthe embodiments based on the description herein.

Further, certain features of the invention may be implemented usingcomputer-executable instructions that may be executed by processinglogic, such as, for example, processing logic 120. Thecomputer-executable instructions may be stored on one or morenon-transitory tangible computer-readable storage media, such as, forexample primary storage 130 and/or secondary storage 150. The media maybe volatile or non-volatile and may include, for example, DRAM, SRAM,flash memories, removable disks, non-removable disks, and so on.

No element, act, or instruction used herein should be construed ascritical or essential to the invention unless explicitly described assuch. Also, as used herein, the article “a” is intended to include oneor more items. Where only one item is intended, the term “one” orsimilar language is used. Further, the phrase “based on” is intended tomean “based, at least in part, on” unless explicitly stated otherwise.

It is intended that the invention not be limited to the particularembodiments disclosed above, but that the invention will include any andall particular embodiments and equivalents falling within the scope ofthe following appended claims.

What is claimed is:
 1. A method comprising: displaying a first filter ona display screen; for the first filter: displaying a first sequence ofdisplay elements on the display screen, each of the display elements inthe first sequence representing a selectable video program associatedwith the first filter for viewing on the display screen; displaying aninformation display region associated with a first display element inthe first sequence, the information display region being supplementalwith respect to the display elements in the first sequence, theinformation display region displaying attributes of content associatedwith the first display element; and in response to receiving selectionof a second filter on the display screen: displaying a second sequenceof display elements on the display screen, each of the display elementsin the second sequence representing a selectable video programassociated with the second filter for viewing on the display screen. 2.The method as in claim 1 further comprising: providing a visualindication that the first display element in the first sequencerepresents first video currently being displayed in a display region onthe display screen, the display region dedicated to playback contentselected for viewing from the first sequence.
 3. The method as in claim1 further comprising: receiving selection of a first display element inthe second sequence; displaying an indication on the display screen thatthe first display element in the second sequence has been selected; anddisplaying the information display region in between the first displayelement and a second display element in the second sequence, theinformation display region displaying attributes of content associatedwith the first display element in the second sequence.
 4. The method asin claim 1 further comprising: displaying the second sequence as asubstitute with respect to the first sequence in response to receivingselection of the second filter.
 5. The method as in claim 4, wherein thefirst sequence is a first carousel of shiftable display elements; andwherein the second sequence is a second carousel of shiftable displayelements.
 6. The method as in claim 1, wherein the information displayregion is dynamically displayed at different locations in the firstsequence, the information display region displayed between two displayelements in the first sequence depending on which of the displayelements in the first sequence is selected by a user for viewingrespective content on the display screen.
 7. The method as in claim 1,wherein a portion of the display elements in the first sequence shiftout of view in response to input from a user selecting amongst thedisplay elements in the first sequence.
 8. The method as in claim 1further comprising: in response to receiving selection of a seconddisplay element in the first sequence, shifting the first displayelement out of view from the first sequence and populating the firstsequence with a new display element.
 9. The method as in claim 1 furthercomprising: slidably moving the second sequence in place of the firstsequence in response to receiving selection of the second filter, aportion of the first sequence and a portion of the second sequencetemporarily displayed at the same time on the display screen whileslidably moving the second sequence in place of the first sequence. 10.The method of claim 9, wherein the first sequence is a first carousel ofdisplay elements shiftable along a first axis; and wherein the secondsequence is a second carousel of display elements shiftable along thefirst axis.
 11. A system comprising: a display screen; and processinglogic to control the display screen, the processing logic operable to:display a first filter and a second filter on the display screen; forthe first filter: display a first sequence of display elements on thedisplay screen, each of the display elements in the first sequencerepresenting a selectable video program associated with the first filterfor viewing on the display screen; display an information display regionassociated with a first display element in the first sequence, theinformation display region being supplemental with respect to thedisplay elements in the first sequence, the information display regiondisplaying attributes of content associated with the first displayelement; and in response to receiving selection of the second filter:display a second sequence of display elements on the display screen,each of the display elements in the second sequence representing aselectable video program associated with the second filter for viewingon the display screen.
 12. The system as in claim 11, wherein theprocessing logic is further operable to: provide a visual indicationthat the first display element in the first sequence represents firstvideo currently being displayed in a video display region on the displayscreen, the video display region dedicated to playback content selectedfor viewing.
 13. The system as in claim 11, wherein the processing logicis further operable to: provide a visual indication that a first displayelement in the first sequence represents first video currently beingdisplayed in a display region on the display screen, the display regiondedicated to playback content selected from the first sequence.
 14. Thesystem as in claim 11, wherein the processing logic is further operableto: receive selection of a first display element in the second sequence;display an indication on the display screen that the first displayelement in the second sequence has been selected; and display theinformation display region in between the first display element and asecond display element in the second sequence, the information displayregion displaying attributes of content associated with the firstdisplay element in the second sequence.
 15. The system as in claim 11,wherein the processing logic is further operable to: display the secondsequence as a substitute with respect to the first sequence in responseto receiving selection of the second filter.
 16. The system as in claim15, wherein the first sequence is a first carousel of shifting displayelements; and wherein the second sequence is a second carousel ofshifting display elements.
 17. The system as in claim 12, wherein theinformation display region is dynamically displayed at differentlocations in the first sequence, the information display regiondisplayed between two display elements in the first sequence dependingon which of the display elements in the first sequence is selected by auser for viewing respective content on the display screen.
 18. Thesystem as in claim 11, wherein a portion of the display elements in thefirst sequence shift out of view in response to input from a userselecting amongst the display elements in the first sequence.
 19. Thesystem as in claim 11, wherein the processing logic is further operableto: in response to receiving selection of a second display element inthe first sequence, shift the first display element out of view from thefirst sequence and populating the first sequence with a new displayelement.
 20. The system as in claim 11, wherein the processing logic isfurther operable to: slidably move the second sequence in place of thefirst sequence in response to receiving selection of the second filter,a portion of the first sequence and a portion of the second sequencetemporarily displayed at the same time on the display screen whileslidably moving the second sequence in place of the first sequence. 21.The system as in claim 20, wherein the first sequence is a firstcarousel of display elements shiftable along a first axis; and whereinthe second sequence is a second carousel of display elements shiftablealong the first axis.
 22. Tangible non-transitory computer-readablemedia storing computer-executable instructions operable to: display afirst filter and a second filter on the display screen; for the firstfilter: display a first sequence of display elements on the displayscreen, each of the display elements in the first sequence representinga selectable video program associated with the first filter for viewingon the display screen; display an information display region associatedwith a first display element in the first sequence, the informationdisplay region being supplemental with respect to the display elementsin the first sequence, the information display region displayingattributes of content associated with the first display element; and inresponse to receiving selection of the second filter: display a secondsequence of display elements on the display screen, each of the displayelements in the second sequence representing a selectable video programassociated with the second filter for viewing on the display screen. 23.The method as in claim 9, wherein the information display region isdynamically displayed at different locations in the first sequence, theinformation display region displayed between two adjacent displayelements in the first sequence depending on which of the displayelements in the first sequence is selected by a user for viewingrespective content on the display screen.